#ifndef TRUTHVALUE_H
#define TRUTHVALUE_H

#include "booleanExpression.h"
#include "enum.h"

/*Class: TruthValue
 * A class to represent truth values as True, false or unknown
 * See Also:
 * 	<BooleanExpression> <Expression>
 */

class TruthValue: public BooleanExpression{
public:
	/*Cosntructor TruthValue
	 * Constructor that sets the truth value to the truth value of the parameter
	 * Parameters:
	 * 	val - The truht value to initialize the class
	 */
	TruthValue(truthValue val);

	TruthValue(const TruthValue & other);

	virtual ~TruthValue();

	/*Function: toString
	 * returns the string representation of the truth value
	 */
	std::string toString();

	virtual Expression * clone();

protected:
	/*Variable value:
	 * 	the truth value.
	 */
	truthValue value;
};
#endif
